home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 January: Mac OS SDK / Dev.CD Jan 99 SDK1.toast / Development Kits / Interfaces&Libraries / Universal / Interfaces / PInterfaces / SocketServices.p < prev    next >
Encoding:
Text File  |  1998-08-17  |  20.4 KB  |  688 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        SocketServices.p
  3.  
  4.      Contains:    This file contains constants and data structures that
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.2
  8.  
  9.      Copyright:    © 1994-1998 by Apple Computer, Inc. All rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. }
  17. {$IFC UNDEFINED UsingIncludes}
  18. {$SETC UsingIncludes := 0}
  19. {$ENDC}
  20.  
  21. {$IFC NOT UsingIncludes}
  22.  UNIT SocketServices;
  23.  INTERFACE
  24. {$ENDC}
  25.  
  26. {$IFC UNDEFINED __SOCKETSERVICES__}
  27. {$SETC __SOCKETSERVICES__ := 1}
  28.  
  29. {$I+}
  30. {$SETC SocketServicesIncludes := UsingIncludes}
  31. {$SETC UsingIncludes := 1}
  32.  
  33. {$IFC UNDEFINED __MACTYPES__}
  34. {$I MacTypes.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED __MIXEDMODE__}
  37. {$I MixedMode.p}
  38. {$ENDC}
  39.  
  40.  
  41. {$PUSH}
  42. {$ALIGN MAC68K}
  43. {$LibExport+}
  44.  
  45. {
  46.   ///////////////////////////////////////////////////////////////////////////////////////
  47.       TypeDefs for the Socket Services function codes
  48. }
  49.  
  50.  
  51. TYPE
  52.     SS_BYTE                                = Byte;
  53.     SS_FLAGS8                            = Byte;
  54.     SS_IRQ                                = Byte;
  55.     SS_PWRLEVEL                            = Byte;
  56.     SS_ADAPTER                            = UInt16;
  57.     SS_BCD                                = UInt16;
  58.     SS_COUNT                            = UInt16;
  59.     SS_EDC                                = UInt16;
  60.     SS_FLAGS16                            = UInt16;
  61.     SS_PAGE                                = UInt16;
  62.     SS_PWRINDEX                            = UInt16;
  63.     SS_SIGNATURE                        = UInt16;
  64.     SS_SKTBITS                            = UInt16;
  65.     SS_SOCKET                            = UInt16;
  66.     SS_SPEED                            = UInt16;
  67.     SS_WINDOW                            = UInt16;
  68.     SS_WORD                                = UInt16;
  69.     SS_BASE                                = UInt32;
  70.     SS_FLAGS32                            = UInt32;
  71.     SS_OFFSET                            = UInt32;
  72.     SS_SIZE                                = UInt32;
  73.     SS_PTR                                = Ptr;
  74.     SS_RETCODE                            = OSErr;
  75.     SS_SCHARTBLPtr = ^SS_SCHARTBL;
  76.     SS_SCHARTBL = RECORD
  77.         sktCaps:                UInt16;                                    {     SS_FLAGS16 }
  78.         activeHigh:                UInt32;                                    {     SS_FLAGS32 }
  79.         activeLow:                UInt32;                                    {     SS_FLAGS32 }
  80.     END;
  81.  
  82.     SS_SISTRUCTPtr = ^SS_SISTRUCT;
  83.     SS_SISTRUCT = RECORD
  84.         bufferLength:            UInt16;                                    {     SS_WORD }
  85.         dataLength:                UInt16;                                    {     SS_WORD }
  86.         charTable:                SS_SCHARTBL;                            {     SS_FLAGS16 }
  87.     END;
  88.  
  89.  
  90. CONST
  91.     STR_SIZE                    = 24;
  92.  
  93. {  minimum string length }
  94.  
  95. TYPE
  96.     SS_VISTRUCTPtr = ^SS_VISTRUCT;
  97.     SS_VISTRUCT = RECORD
  98.         bufferLength:            UInt16;                                    {     SS_WORD }
  99.         dataLength:                UInt16;                                    {     SS_WORD }
  100.         szImplementor:            SInt8;                                    {     SS_WORD }
  101.         padding:                SInt8;                                    {      }
  102.     END;
  103.  
  104.     SS_ACHARTBLPtr = ^SS_ACHARTBL;
  105.     SS_ACHARTBL = RECORD
  106.         adpCaps:                UInt16;                                    {     SS_FLAGS16 }
  107.         activeHigh:                UInt32;                                    {     SS_FLAGS32 }
  108.         activeLow:                UInt32;                                    {     SS_FLAGS32 }
  109.     END;
  110.  
  111.     SS_PWRENTRYPtr = ^SS_PWRENTRY;
  112.     SS_PWRENTRY = RECORD
  113.         powerLevel:                SInt8;                                    {     SS_PWRLEVEL }
  114.         validSignals:            SInt8;                                    {     SS_FLAGS8 }
  115.     END;
  116.  
  117.     SS_AISTRUCTPtr = ^SS_AISTRUCT;
  118.     SS_AISTRUCT = RECORD
  119.         bufferLength:            UInt16;                                    {     SS_WORD }
  120.         dataLength:                UInt16;                                    {     SS_WORD }
  121.         charTable:                SS_ACHARTBL;
  122.         numPwrEntries:            UInt16;                                    {     SS_WORD }
  123.         pwrEntryPtr:            SS_PWRENTRYPtr;
  124.     END;
  125.  
  126.     SS_MEMWINTBLPtr = ^SS_MEMWINTBL;
  127.     SS_MEMWINTBL = RECORD
  128.         memWndCaps:                UInt16;                                    {     SS_FLAGS16 }
  129.         firstByte:                UInt32;                                    {     SS_BASE }
  130.         lastByte:                UInt32;                                    {     SS_BASE }
  131.         minSize:                UInt32;                                    {     SS_SIZE }
  132.         maxSize:                UInt32;                                    {     SS_SIZE }
  133.         reqGran:                UInt32;                                    {     SS_SIZE }
  134.         reqBase:                UInt32;                                    {     SS_SIZE }
  135.         reqOffset:                UInt32;                                    {     SS_SIZE }
  136.         slowest:                UInt16;                                    {     SS_SPEED }
  137.         fastest:                UInt16;                                    {     SS_SPEED }
  138.     END;
  139.  
  140.     SS_IOWINTBLPtr = ^SS_IOWINTBL;
  141.     SS_IOWINTBL = RECORD
  142.         ioWndCaps:                UInt16;                                    {     SS_FLAGS16 }
  143.         firstByte:                UInt32;                                    {     SS_BASE }
  144.         lastByte:                UInt32;                                    {     SS_BASE }
  145.         minSize:                UInt32;                                    {     SS_SIZE }
  146.         maxSize:                UInt32;                                    {     SS_SIZE }
  147.         reqGran:                UInt32;                                    {     SS_SIZE }
  148.         addrLines:                UInt16;                                    {     SS_COUNT }
  149.         eisaSlot:                SInt8;                                    {     SS_FLAGS8 }
  150.         padding:                SInt8;                                    {      }
  151.     END;
  152.  
  153.     SS_WISTRUCTPtr = ^SS_WISTRUCT;
  154.     SS_WISTRUCT = RECORD
  155.         bufferLength:            UInt16;                                    {     SS_WORD }
  156.         dataLength:                UInt16;                                    {     SS_WORD }
  157.         numTblEntries:            UInt16;                                    {     SS_WORD }
  158.         memWinTbl:                SS_MEMWINTBL;
  159.         ioWinTbl:                SS_IOWINTBL;
  160.     END;
  161.  
  162.  
  163. {————————————————————————————————————————————————————————————————————————
  164.     function selectors passed to Socket Service entry point
  165. ————————————————————————————————————————————————————————————————————————}
  166.  
  167. CONST
  168.     fnSSGetAdapterCount            = $80;
  169.     fnSSUnsupported81            = $81;
  170.     fnSSUnsupported82            = $82;
  171.     fnSSGetSSInfo                = $83;
  172.     fnSSInquireAdapter            = $84;
  173.     fnSSGetAdapter                = $85;
  174.     fnSSSetAdapter                = $86;
  175.     fnSSInquireWindow            = $87;
  176.     fnSSGetWindow                = $88;
  177.     fnSSSetWindow                = $89;
  178.     fnSSGetPage                    = $8A;
  179.     fnSSSetPage                    = $8B;
  180.     fnSSInquireSocket            = $8C;
  181.     fnSSGetSocket                = $8D;
  182.     fnSSSetSocket                = $8E;
  183.     fnSSGetStatus                = $8F;
  184.     fnSSResetSocket                = $90;
  185.     fnSSUnsupported91            = $91;
  186.     fnSSUnsupported92            = $92;
  187.     fnSSUnsupported93            = $93;
  188.     fnSSUnsupported94            = $94;
  189.     fnSSInquireEDC                = $95;
  190.     fnSSGetEDC                    = $96;
  191.     fnSSSetEDC                    = $97;
  192.     fnSSStartEDC                = $98;
  193.     fnSSPauseEDC                = $99;
  194.     fnSSResumeEDC                = $9A;
  195.     fnSSStopEDC                    = $9B;
  196.     fnSSReadEDC                    = $9C;
  197.     fnSSGetVendorInfo            = $9D;
  198.     fnSSAcknowledgeInterrupt    = $9E;
  199.     fnSSGetSetPriorHandler        = $9F;
  200.     fnSSGetSetSSAddr            = $A0;
  201.     fnSSGetAccessOffsets        = $A1;
  202.     fnSSUnsupportedA2            = $A2;
  203.     fnSSUnsupportedA3            = $A3;
  204.     fnSSUnsupportedA4            = $A4;
  205.     fnSSUnsupportedA5            = $A5;
  206.     fnSSUnsupportedA6            = $A6;
  207.     fnSSUnsupportedA7            = $A7;
  208.     fnSSUnsupportedA8            = $A8;
  209.     fnSSUnsupportedA9            = $A9;
  210.     fnSSUnsupportedAA            = $AA;
  211.     fnSSUnsupportedAB            = $AB;
  212.     fnSSUnsupportedAC            = $AC;
  213.     fnSSUnsupportedAD            = $AD;
  214.     fnSSVendorSpecific            = $AE;
  215.  
  216. {     SSVendorSpecificPB.function values }
  217.  
  218.     fnVSReserved                = $00;
  219.     fnVSGetSocketLocationIcon    = $01;
  220.     fnVSGetSocketLocationText    = $02;
  221.     fnVSDoSocketLocalization    = $03;
  222.     fnVSAppleSocketCapabilities    = $04;
  223.     fnVSSleepWakeNotification    = $05;
  224.  
  225.  
  226. {————————————————————————————————————————————————————————————————————————
  227.     defines for the Socket Services function codes
  228. ————————————————————————————————————————————————————————————————————————}
  229.     AC_IND                        = 1;                            {  adapter characteristics }
  230.     AC_PWR                        = 2;
  231.     AC_DBW                        = 4;
  232.  
  233.     AS_POWERDOWN                = 1;
  234.     AS_MAINTAIN                    = 2;
  235.  
  236.     EC_UNI                        = 1;
  237.     EC_BI                        = 2;
  238.     EC_REGISTER                    = 4;
  239.     EC_MEMORY                    = 8;
  240.     EC_PAUSABLE                    = 16;
  241.     EC_WRITE                    = 16;
  242.  
  243.     ET_CHECK8                    = 1;
  244.     ET_SDLC16                    = 2;
  245.  
  246.     IF_MEMORY                    = 1;
  247.     IF_IO                        = 2;
  248.  
  249.     IRQ_HIGH                    = 64;
  250.     IRQ_ENABLE                    = 128;
  251.  
  252.     IRQ_MEMORY                    = 4;
  253.     IRQ_IO                        = 4;
  254.  
  255.     PS_ATTRIBUTE                = $01;
  256.     PS_ENABLED                    = $02;
  257.     PS_WP                        = $04;
  258.  
  259.     PWR_VCC                        = 128;                            {  Power pins in PwrEntry elements }
  260.     PWR_VPP1                    = 64;
  261.     PWR_VPP2                    = 32;
  262.  
  263.     SBM_WP                        = 1;
  264.     SBM_LOCKED                    = 2;
  265.     SBM_EJECT                    = 4;
  266.     SBM_INSERT                    = 8;
  267.     SBM_BVD1                    = 16;
  268.     SBM_BVD2                    = 32;
  269.     SBM_RDYBSY                    = 64;
  270.     SBM_CD                        = 128;
  271.  
  272.     SBM_LOCK                    = 16;
  273.     SBM_BATT                    = 32;
  274.     SBM_BUSY                    = 64;
  275.     SBM_XIP                        = 128;
  276.  
  277. { Vendor Specific Apple Socket Capabilities }
  278.     SBM_SLEEP_PWR                = 1;
  279.  
  280.     WC_COMMON                    = 1;
  281.     WC_IO                        = 2;
  282.     WC_ATTRIBUTE                = 4;
  283.     WC_TYPE_MASK                = 7;
  284.     WC_WAIT                        = 128;
  285.  
  286.     WC_BASE                        = 1;
  287.     WC_SIZE                        = 2;
  288.     WC_WENABLE                    = 4;
  289.     WC_8BIT                        = 8;
  290.     WC_16BIT                    = 16;
  291.     WC_BALIGN                    = 32;
  292.     WC_POW2                        = 64;
  293.     WC_CALIGN                    = 128;
  294.     WC_PAVAIL                    = 256;
  295.     WC_PSHARED                    = 512;
  296.     WC_PENABLE                    = 1024;
  297.     WC_WP                        = 2048;
  298.  
  299.     WC_INPACK                    = 128;
  300.     WC_EISA                        = 256;
  301.     WC_CENABLE                    = 512;
  302.  
  303.     WS_IO                        = 1;
  304.     WS_ENABLED                    = 2;
  305.     WS_16BIT                    = 4;
  306.  
  307.     WS_PAGED                    = 8;
  308.     WS_EISA                        = 16;
  309.     WS_CENABLE                    = 32;
  310.     WS_SWAP_LITTLE_TO_BIG_ENDIAN = 64;
  311.  
  312.     SS_SIG_VALUE                = $5353;                        {  'SS' }
  313.  
  314.     SS_CMPL_1_00                = $0100;                        {  compliant with rev 1.0 of SS standard }
  315.     SS_CMPL_1_01                = $0101;                        {  compliant with rev 1.01 of SS standard }
  316.     SS_CMPL_2_00                = $0200;                        {  compliant with rev 2.0 of SS standard }
  317.     SS_CMPL_2_10                = $0210;                        {  compliant with rev 2.1 of SS standard }
  318.  
  319. {————————————————————————————————————————————————————————————————————————
  320.     Universal ProcPtr for Socket Service entry point
  321. ————————————————————————————————————————————————————————————————————————}
  322.  
  323. TYPE
  324. {$IFC TYPED_FUNCTION_POINTERS}
  325.     PCCardSSEntryProcPtr = FUNCTION(fnCode: UInt16; callPB: Ptr; dataPtr: Ptr): INTEGER;
  326. {$ELSEC}
  327.     PCCardSSEntryProcPtr = ProcPtr;
  328. {$ENDC}
  329.  
  330.     PCCardSSEntryUPP = UniversalProcPtr;
  331.  
  332. CONST
  333.     uppPCCardSSEntryProcInfo = $00000FA0;
  334.  
  335. FUNCTION NewPCCardSSEntryProc(userRoutine: PCCardSSEntryProcPtr): PCCardSSEntryUPP;
  336.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  337.     INLINE $2E9F;
  338.     {$ENDC}
  339.  
  340. FUNCTION CallPCCardSSEntryProc(fnCode: UInt16; callPB: Ptr; dataPtr: Ptr; userRoutine: PCCardSSEntryUPP): INTEGER;
  341.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  342.     INLINE $205F, $4E90;
  343.     {$ENDC}
  344. {————————————————————————————————————————————————————————————————————————
  345.     Card Services calls used by a Socket Service
  346. ————————————————————————————————————————————————————————————————————————}
  347.  
  348. TYPE
  349.     CSEventEntryPBPtr = ^CSEventEntryPB;
  350.     CSEventEntryPB = RECORD
  351.         ssHandlerID:            UInt32;
  352.         adapter:                UInt16;
  353.         socket:                    UInt16;
  354.         message:                UInt16;
  355.         intrpBits:                SInt8;
  356.         padding:                SInt8;
  357.     END;
  358.  
  359. {$IFC TYPED_FUNCTION_POINTERS}
  360.     PCCardCSEntryProcPtr = PROCEDURE(VAR pb: CSEventEntryPB);
  361. {$ELSEC}
  362.     PCCardCSEntryProcPtr = ProcPtr;
  363. {$ENDC}
  364.  
  365.     PCCardCSEntryUPP = UniversalProcPtr;
  366.  
  367. CONST
  368.     uppPCCardCSEntryProcInfo = $000000C0;
  369.  
  370. FUNCTION NewPCCardCSEntryProc(userRoutine: PCCardCSEntryProcPtr): PCCardCSEntryUPP;
  371.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  372.     INLINE $2E9F;
  373.     {$ENDC}
  374.  
  375. PROCEDURE CallPCCardCSEntryProc(VAR pb: CSEventEntryPB; userRoutine: PCCardCSEntryUPP);
  376.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  377.     INLINE $205F, $4E90;
  378.     {$ENDC}
  379. { ------------        AddSocketServices        ------------                             }
  380.  
  381.  
  382. TYPE
  383.     AddSocketServicesPBPtr = ^AddSocketServicesPB;
  384.     AddSocketServicesPB = RECORD
  385.         ssEntry:                PCCardSSEntryUPP;                        {  -> given to CS for its use }
  386.         csEntry:                PCCardCSEntryUPP;                        {  <- taken from CS so we know where to enter }
  387.         dataPtr:                UInt32;
  388.         attributes:                UInt32;
  389.         numAdapters:            UInt16;
  390.         numSockets:                UInt16;
  391.     END;
  392.  
  393. { ------------         ReplaceSocketServices    ------------                             }
  394.  
  395.     ReplaceSocketServicesPBPtr = ^ReplaceSocketServicesPB;
  396.     ReplaceSocketServicesPB = RECORD
  397.         ssEntry:                PCCardSSEntryUPP;
  398.         oldSSEntry:                PCCardSSEntryUPP;
  399.         dataPtr:                UInt32;
  400.         socket:                    UInt16;
  401.         numSockets:                UInt16;
  402.         attributes:                UInt16;
  403.     END;
  404.  
  405. FUNCTION CSAddSocketServices(VAR pb: AddSocketServicesPB): OSErr;
  406.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  407.     INLINE $7050, $AAF0;
  408.     {$ENDC}
  409. FUNCTION CSReplaceSocketServices(VAR pb: ReplaceSocketServicesPB): OSErr;
  410.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  411.     INLINE $7051, $AAF0;
  412.     {$ENDC}
  413.  
  414.  
  415. {————————————————————————————————————————————————————————————————————————
  416.     parameter blocks for each Socket Service function
  417. ————————————————————————————————————————————————————————————————————————}
  418.  
  419. TYPE
  420.     SSAcknowledgeInterruptPBPtr = ^SSAcknowledgeInterruptPB;
  421.     SSAcknowledgeInterruptPB = RECORD
  422.         adapter:                UInt16;                                    {     SS_ADAPTER }
  423.         sockets:                UInt16;                                    {     SS_SKTBITS }
  424.     END;
  425.  
  426.     SSGetAccessOffsetsPBPtr = ^SSGetAccessOffsetsPB;
  427.     SSGetAccessOffsetsPB = RECORD
  428.         adapter:                UInt16;                                    {     SS_ADAPTER }
  429.         mode:                    SInt8;                                    {     SS_BYTE }
  430.         reserved:                SInt8;                                    {     padding }
  431.         count:                    UInt16;                                    {     SS_COUNT }
  432.         buffer:                    Ptr;                                    {     SS_PTR }
  433.         numAvail:                UInt16;                                    {     SS_COUNT }
  434.     END;
  435.  
  436.     SSGetAdapterCountPBPtr = ^SSGetAdapterCountPB;
  437.     SSGetAdapterCountPB = RECORD
  438.         totalAdapters:            UInt16;                                    {     SS_COUNT }
  439.         sig:                    UInt16;                                    {     SS_SIGNATURE }
  440.     END;
  441.  
  442.     SSGetSetAdapterPBPtr = ^SSGetSetAdapterPB;
  443.     SSGetSetAdapterPB = RECORD
  444.         adapter:                UInt16;                                    {     SS_ADAPTER }
  445.         state:                    SInt8;                                    {     SS_FLAGS8 }
  446.         irqStatus:                SInt8;                                    {     SS_IRQ }
  447.     END;
  448.  
  449.     SSGetSetEDCPBPtr = ^SSGetSetEDCPB;
  450.     SSGetSetEDCPB = RECORD
  451.         adapter:                UInt16;                                    {     SS_ADAPTER }
  452.         edc:                    UInt16;                                    {     SS_EDC }
  453.         socket:                    UInt16;                                    {     SS_SOCKET }
  454.         state:                    SInt8;                                    {     SS_FLAGS8 }
  455.         edcType:                SInt8;                                    {     SS_FLAGS8 }
  456.     END;
  457.  
  458.     SSGetSetPagePBPtr = ^SSGetSetPagePB;
  459.     SSGetSetPagePB = RECORD
  460.         adapter:                UInt16;                                    {     SS_ADAPTER }
  461.         window:                    UInt16;                                    {     SS_WINDOW }
  462.         page:                    UInt16;                                    {     SS_PAGE }
  463.         state:                    SInt8;                                    {     SS_FLAGS8 }
  464.         reserved:                SInt8;                                    {     padding }
  465.         offset:                    UInt32;                                    {     SS_OFFSET }
  466.     END;
  467.  
  468.     SSGetSetPriorHandlerPBPtr = ^SSGetSetPriorHandlerPB;
  469.     SSGetSetPriorHandlerPB = RECORD
  470.         adapter:                UInt16;                                    {     SS_ADAPTER }
  471.         mode:                    SInt8;                                    {     SS_FLAGS8 }
  472.         reserved:                SInt8;                                    {     padding }
  473.         handler:                Ptr;                                    {     SS_PTR }
  474.     END;
  475.  
  476.     SSGetSetSocketPBPtr = ^SSGetSetSocketPB;
  477.     SSGetSetSocketPB = RECORD
  478.         adapter:                UInt16;                                    {     SS_ADAPTER }
  479.         socket:                    UInt16;                                    {     SS_SOCKET }
  480.         vccIndex:                UInt16;                                    {     SS_PWRINDEX }
  481.         vpp1Index:                UInt16;                                    {     SS_PWRINDEX }
  482.         vpp2Index:                UInt16;                                    {     SS_PWRINDEX }
  483.         scIntMask:                SInt8;                                    {     SS_FLAGS8 }
  484.         state:                    SInt8;                                    {     SS_FLAGS8 }
  485.         ctlInd:                    SInt8;                                    {     SS_FLAGS8 }
  486.         ireqRouting:            SInt8;                                    {     SS_IRQ }
  487.         ifType:                    SInt8;                                    {     SS_FLAGS8 }
  488.         padding:                SInt8;                                    {      }
  489.     END;
  490.  
  491.     SSGetSetSSAddrPBPtr = ^SSGetSetSSAddrPB;
  492.     SSGetSetSSAddrPB = RECORD
  493.         adapter:                UInt16;                                    {     SS_ADAPTER }
  494.         mode:                    SInt8;                                    {     SS_BYTE }
  495.         subfunc:                SInt8;                                    {     SS_BYTE }
  496.         numAddData:                UInt16;                                    {     SS_COUNT }
  497.         buffer:                    Ptr;                                    {     SS_PTR }
  498.     END;
  499.  
  500.     SSGetSetWindowPBPtr = ^SSGetSetWindowPB;
  501.     SSGetSetWindowPB = RECORD
  502.         adapter:                UInt16;                                    {     SS_ADAPTER }
  503.         window:                    UInt16;                                    {     SS_WINDOW }
  504.         socket:                    UInt16;                                    {     SS_SOCKET }
  505.         size:                    UInt32;                                    {     SS_SIZE }
  506.         state:                    SInt8;                                    {     SS_FLAGS8 }
  507.         reserved:                SInt8;                                    {     padding }
  508.         speed:                    UInt16;                                    {     SS_SPEED }
  509.         base:                    UInt32;                                    {     SS_BASE }
  510.     END;
  511.  
  512.     SSGetSSInfoPBPtr = ^SSGetSSInfoPB;
  513.     SSGetSSInfoPB = RECORD
  514.         adapter:                UInt16;                                    {     SS_ADAPTER }
  515.         compliance:                UInt16;                                    {     SS_BCD }
  516.         numAdapters:            UInt16;                                    {     SS_COUNT }
  517.         firstAdapter:            UInt16;                                    {     SS_ADAPTER }
  518.     END;
  519.  
  520.     SSGetStatusPBPtr = ^SSGetStatusPB;
  521.     SSGetStatusPB = RECORD
  522.         adapter:                UInt16;                                    {     SS_ADAPTER }
  523.         socket:                    UInt16;                                    {     SS_SOCKET }
  524.         cardState:                SInt8;                                    {     SS_FLAGS8 }
  525.         socketState:            SInt8;                                    {     SS_FLAGS8 }
  526.         ctlInd:                    SInt8;                                    {     SS_FLAGS8 }
  527.         ireqRouting:            SInt8;                                    {     SS_IRQ }
  528.         ifType:                    SInt8;                                    {     SS_FLAGS8 }
  529.         padding:                SInt8;                                    {      }
  530.     END;
  531.  
  532.     SSGetVendorInfoPBPtr = ^SSGetVendorInfoPB;
  533.     SSGetVendorInfoPB = RECORD
  534.         adapter:                UInt16;                                    {     SS_ADAPTER }
  535.         vendorInfoType:            SInt8;                                    {     SS_BYTE }
  536.         reserved:                SInt8;                                    {     padding }
  537.         buffer:                    Ptr;                                    {     SS_PTR }
  538.         release:                UInt16;                                    {     SS_BCD }
  539.     END;
  540.  
  541.     SSInquireAdapterPBPtr = ^SSInquireAdapterPB;
  542.     SSInquireAdapterPB = RECORD
  543.         adapter:                UInt16;                                    {     SS_ADAPTER }
  544.         buffer:                    Ptr;                                    {     SS_PTR }
  545.         numSockets:                UInt16;                                    {     SS_COUNT }
  546.         numWindows:                UInt16;                                    {     SS_COUNT }
  547.         numEDCs:                UInt16;                                    {     SS_COUNT }
  548.     END;
  549.  
  550.     SSInquireEDCPBPtr = ^SSInquireEDCPB;
  551.     SSInquireEDCPB = RECORD
  552.         adapter:                UInt16;                                    {     SS_ADAPTER }
  553.         edc:                    UInt16;                                    {     SS_EDC }
  554.         sockets:                UInt16;                                    {     SS_SKTBITS }
  555.         caps:                    SInt8;                                    {     SS_FLAGS8 }
  556.         types:                    SInt8;                                    {     SS_FLAGS8 }
  557.     END;
  558.  
  559.     SSInquireSocketPBPtr = ^SSInquireSocketPB;
  560.     SSInquireSocketPB = RECORD
  561.         adapter:                UInt16;                                    {     SS_ADAPTER }
  562.         socket:                    UInt16;                                    {     SS_SOCKET }
  563.         buffer:                    Ptr;                                    {     SS_PTR }
  564.         scIntCaps:                SInt8;                                    {     SS_FLAGS8 }
  565.         scRptCaps:                SInt8;                                    {     SS_FLAGS8 }
  566.         ctlIndCaps:                SInt8;                                    {     SS_FLAGS8 }
  567.         padding:                SInt8;                                    {      }
  568.     END;
  569.  
  570.     SSInquireWindowPBPtr = ^SSInquireWindowPB;
  571.     SSInquireWindowPB = RECORD
  572.         adapter:                UInt16;                                    {     SS_ADAPTER }
  573.         window:                    UInt16;                                    {     SS_WINDOW }
  574.         buffer:                    Ptr;                                    {     SS_PTR }
  575.         wndCaps:                SInt8;                                    {     SS_FLAGS8 }
  576.         reserved:                SInt8;                                    {     padding }
  577.         sockets:                UInt16;                                    {     SS_SKTBITS }
  578.     END;
  579.  
  580.     SSPauseEDCPBPtr = ^SSPauseEDCPB;
  581.     SSPauseEDCPB = RECORD
  582.         adapter:                UInt16;                                    {     SS_ADAPTER }
  583.         edc:                    UInt16;                                    {     SS_EDC }
  584.     END;
  585.  
  586.     SSReadEDCPBPtr = ^SSReadEDCPB;
  587.     SSReadEDCPB = RECORD
  588.         adapter:                UInt16;                                    {     SS_ADAPTER }
  589.         edc:                    UInt16;                                    {     SS_EDC }
  590.         value:                    UInt16;                                    {     SS_WORD }
  591.     END;
  592.  
  593.     SSResetSocketPBPtr = ^SSResetSocketPB;
  594.     SSResetSocketPB = RECORD
  595.         adapter:                UInt16;                                    {     SS_ADAPTER }
  596.         socket:                    UInt16;                                    {     SS_SOCKET }
  597.     END;
  598.  
  599.     SSResumeEDCPBPtr = ^SSResumeEDCPB;
  600.     SSResumeEDCPB = RECORD
  601.         adapter:                UInt16;                                    {     SS_ADAPTER }
  602.         edc:                    UInt16;                                    {     SS_EDC }
  603.     END;
  604.  
  605.     SSStartEDCPBPtr = ^SSStartEDCPB;
  606.     SSStartEDCPB = RECORD
  607.         adapter:                UInt16;                                    {     SS_ADAPTER }
  608.         edc:                    UInt16;                                    {     SS_EDC }
  609.     END;
  610.  
  611.     SSStopEDCPBPtr = ^SSStopEDCPB;
  612.     SSStopEDCPB = RECORD
  613.         adapter:                UInt16;                                    {     SS_ADAPTER }
  614.         edc:                    UInt16;                                    {     SS_EDC }
  615.     END;
  616.  
  617.     SSVendorSpecificPBPtr = ^SSVendorSpecificPB;
  618.     SSVendorSpecificPB = RECORD
  619.         vsFunction:                UInt16;                                    {     SS_WORD }
  620.         adapter:                UInt16;                                    {     SS_ADAPTER }
  621.         socket:                    UInt16;                                    {     SS_SOCKET }
  622.         bufferSize:                UInt16;                                    {     SS_WORD }
  623.         buffer:                    Ptr;                                    {     SS_PTR }
  624.         attributes:                UInt32;                                    {     SS_LONG }
  625.     END;
  626.  
  627. {    ‘attributes’ constants }
  628.  
  629. CONST
  630.     kSSGoingToSleep                = $00000001;
  631.     kSSWakingFromSleep            = $00000002;
  632.  
  633. {————————————————————————————————————————————————————————————————————————
  634.     Non-specific Socket Services Functions
  635. ————————————————————————————————————————————————————————————————————————}
  636. FUNCTION SSGetAdapterCount(VAR pb: SSGetAdapterCountPB; dataPtr: Ptr): SS_RETCODE;
  637. {————————————————————————————————————————————————————————————————————————
  638.     Adapter Functions
  639. ————————————————————————————————————————————————————————————————————————}
  640. FUNCTION SSAcknowledgeInterrupt(VAR pb: SSAcknowledgeInterruptPB; dataPtr: Ptr): SS_RETCODE;
  641. FUNCTION SSGetSetPriorHandler(VAR pb: SSGetSetPriorHandlerPB; dataPtr: Ptr): SS_RETCODE;
  642. FUNCTION SSGetSetSSAddr(VAR pb: SSGetSetSSAddrPB; dataPtr: Ptr): SS_RETCODE;
  643. FUNCTION SSGetAccessOffsets(VAR pb: SSGetAccessOffsetsPB; dataPtr: Ptr): SS_RETCODE;
  644. FUNCTION SSGetAdapter(VAR pb: SSGetSetAdapterPB; dataPtr: Ptr): SS_RETCODE;
  645. FUNCTION SSGetSSInfo(VAR pb: SSGetSSInfoPB; dataPtr: Ptr): SS_RETCODE;
  646. FUNCTION SSGetVendorInfo(VAR pb: SSGetVendorInfoPB; dataPtr: Ptr): SS_RETCODE;
  647. FUNCTION SSInquireAdapter(VAR pb: SSInquireAdapterPB; dataPtr: Ptr): SS_RETCODE;
  648. FUNCTION SSSetAdapter(VAR pb: SSGetSetAdapterPB; dataPtr: Ptr): SS_RETCODE;
  649. FUNCTION SSVendorSpecific(VAR pb: SSVendorSpecificPB; dataPtr: Ptr): SS_RETCODE;
  650. {————————————————————————————————————————————————————————————————————————
  651.     Socket Functions
  652. ————————————————————————————————————————————————————————————————————————}
  653. FUNCTION SSGetSocket(VAR pb: SSGetSetSocketPB; dataPtr: Ptr): SS_RETCODE;
  654. FUNCTION SSGetStatus(VAR pb: SSGetStatusPB; dataPtr: Ptr): SS_RETCODE;
  655. FUNCTION SSInquireSocket(VAR pb: SSInquireSocketPB; dataPtr: Ptr): SS_RETCODE;
  656. FUNCTION SSResetSocket(VAR pb: SSResetSocketPB; dataPtr: Ptr): SS_RETCODE;
  657. FUNCTION SSSetSocket(VAR pb: SSGetSetSocketPB; dataPtr: Ptr): SS_RETCODE;
  658. {————————————————————————————————————————————————————————————————————————
  659.     Window Functions
  660. ————————————————————————————————————————————————————————————————————————}
  661. FUNCTION SSGetPage(VAR pb: SSGetSetPagePB; dataPtr: Ptr): SS_RETCODE;
  662. FUNCTION SSGetWindow(VAR pb: SSGetSetWindowPB; dataPtr: Ptr): SS_RETCODE;
  663. FUNCTION SSInquireWindow(VAR pb: SSInquireWindowPB; dataPtr: Ptr): SS_RETCODE;
  664. FUNCTION SSSetPage(VAR pb: SSGetSetPagePB; dataPtr: Ptr): SS_RETCODE;
  665. FUNCTION SSSetWindow(VAR pb: SSGetSetWindowPB; dataPtr: Ptr): SS_RETCODE;
  666. {————————————————————————————————————————————————————————————————————————
  667.     Error Detection Functions
  668. ————————————————————————————————————————————————————————————————————————}
  669. FUNCTION SSGetEDC(VAR pb: SSGetSetEDCPB; dataPtr: Ptr): SS_RETCODE;
  670. FUNCTION SSInquireEDC(VAR pb: SSInquireEDCPB; dataPtr: Ptr): SS_RETCODE;
  671. FUNCTION SSPauseEDC(VAR pb: SSPauseEDCPB; dataPtr: Ptr): SS_RETCODE;
  672. FUNCTION SSReadEDC(VAR pb: SSReadEDCPB; dataPtr: Ptr): SS_RETCODE;
  673. FUNCTION SSResumeEDC(VAR pb: SSResumeEDCPB; dataPtr: Ptr): SS_RETCODE;
  674. FUNCTION SSSetEDC(VAR pb: SSGetSetEDCPB; dataPtr: Ptr): SS_RETCODE;
  675. FUNCTION SSStartEDC(VAR pb: SSStartEDCPB; dataPtr: Ptr): SS_RETCODE;
  676. FUNCTION SSStopEDC(VAR pb: SSStopEDCPB; dataPtr: Ptr): SS_RETCODE;
  677.  
  678. {$ALIGN RESET}
  679. {$POP}
  680.  
  681. {$SETC UsingIncludes := SocketServicesIncludes}
  682.  
  683. {$ENDC} {__SOCKETSERVICES__}
  684.  
  685. {$IFC NOT UsingIncludes}
  686.  END.
  687. {$ENDC}
  688.